//
// Copyright (c) ZeroC, Inc. All rights reserved.
//

#include "TraceLevels.h"
#include "Ice/Properties.h"

using namespace std;
using namespace Ice;
using namespace IceInternal;

IceInternal::TraceLevels::TraceLevels(const PropertiesPtr& properties)
    : network(0),
      networkCat("Network"),
      protocol(0),
      protocolCat("Protocol"),
      retry(0),
      retryCat("Retry"),
      location(0),
      locationCat("Locator"),
      slicing(0),
      slicingCat("Slicing"),
      threadPool(0),
      threadPoolCat("ThreadPool")
{
    const string keyBase = "Ice.Trace.";
    const_cast<int&>(network) = properties->getIcePropertyAsInt(keyBase + networkCat);
    const_cast<int&>(protocol) = properties->getIcePropertyAsInt(keyBase + protocolCat);
    const_cast<int&>(retry) = properties->getIcePropertyAsInt(keyBase + retryCat);
    const_cast<int&>(location) = properties->getIcePropertyAsInt(keyBase + locationCat);
    const_cast<int&>(slicing) = properties->getIcePropertyAsInt(keyBase + slicingCat);
    const_cast<int&>(threadPool) = properties->getIcePropertyAsInt(keyBase + threadPoolCat);
}
